Online social networking and communication services have become new forums for people to converse, socialize, and do business remotely without the need for face-to-face meetings. Mobile communication technology has also furthered ways in which individuals socialize by enabling communication while on the go. Such services and technologies provide users with instantaneous and continuous access to any other user or to any number of users simultaneously. However, these new means of remote communication often lack many of the social cues one gets when individuals are communicating in the same place. Various methods have come about that, to some extent, help make up for the lack of social cues. One such method is to exchange between individuals, or to publish on social communication networks, presence and activity information of the individuals. As an example, such information may inform others about the level of activity and attentiveness of an individual in a social communication network or about an individual's current availability to converse.
Furthermore, numerous APIs exist in the social networking industry. For example, Google's OpenSocial API provides a common API for social applications across multiple Internet websites. Facebook also provides developers with an API that enables them to add social context to applications by utilizing profiles, friends, photos, and event data. Meanwhile, Google's Data APIs attempts to provides a simple standard protocol for reading and writing data on the web.
In addition, web systems are already known that allow sharing of data between applications on different Internet websites. For example, Microsoft .NET Passport technology allows different websites to take advantage of Microsoft's Passport technology to authenticate users without having to store and maintain a user's authentication information on its own servers. Microsoft .NET allows different websites to access Microsoft .NET web services to perform a particular function.
Software virtual machines are also well known. Sun Microsystems developed the JAVA™ programming language that operates on a virtual machine architecture. In such languages, the programming code (i.e., bytecode) is submitted to an interpreter that reads and compiles the bytecode into native code that can be run on the machine's processor.
Nevertheless, while the aforementioned APIs and technologies assist developers in creating web applications and users in enjoying them. In web applications, the data is only a part of its own runtime environment. Every web application takes care of its own runtime, and there is no concept of a common runtime to develop new richer multiple communication applications. Therefore, there exists a need for a method, apparatus, and system for addressing at least one or more of these shortcomings.